package com.agenda.server.recebedores;

import java.io.ObjectInputStream;
import java.util.List;
import com.agenda.comum.ObjectRecebedorInformacao;
import com.agenda.controller.CompromissoController;
import com.agenda.model.Compromisso;
import com.agenda.model.Convite;
import com.agenda.model.RespostaRequisicao;
import com.agenda.util.StringUtils;

public class VerificarChoquesCompromissoRecebedor extends ObjectRecebedorInformacao {

	@Override
	public void receber(ObjectInputStream objectInput) throws Exception {
		Compromisso compromisso = (Compromisso) objectInput.readObject();

		//StatusController.getINSTANCIA().registrarStatus(user, status);
		StringBuilder choques = new StringBuilder();

		//CompromissoController.getINSTANCIA().
		List<Compromisso> possiveisChoques = CompromissoController.getINSTANCIA().getProximosCompromissos(compromisso.getDataInicial());
		for (Compromisso possivelChoque : possiveisChoques) {
			if (possivelChoque.getId().equals(compromisso.getId()))
				continue;

			for (Convite convite : compromisso.getConvites()) {
				if (possivelChoque.isUsuarioConvidado(convite.getUsuario())) {
					choques.append("O usuário ").append(convite.getUsuario().getLoginEmail()).append(" está convidado para o compromisso ");
					choques.append(StringUtils.toStr(possivelChoque.getDataInicial(), "dd/MM/yyyy")).append(" - ");
					choques.append(possivelChoque.getNome());
					choques.append("\n");
				}
			}
		}

		resposta = new RespostaRequisicao(choques.length() > 0, choques.toString());
	}
}
